home *** CD-ROM | disk | FTP | other *** search
/ Libris Britannia 4 / science library(b).zip / science library(b) / HAMRADIO / LOGBOOK.ZIP / LOGFUNCT.PRG < prev    next >
Text File  |  1986-12-16  |  5KB  |  160 lines

  1. * LOGFUNCT VERSION 860622
  2. * COPYRIGHT JOE KASSER G3ZCZ 1985
  3.  
  4. DO WHILE task <> '*'
  5.    ERASE
  6.    @ 2,10 SAY 'G3ZCZ LOGBOOK PACKAGE VERSION 2.0'
  7.    @ 4,1  SAY 'CURRENT LOGBOOK IS'
  8.    @ 4,21 SAY logbook
  9.    @ 6,1  SAY 'CHANGE LOG FILE                             L'
  10.    @ 7,1  SAY 'PRINT LOG PAGES                             P'
  11.    @ 8,1  SAY 'PRINT LOG INDEXED BY CALL SIGN              C'
  12.    @ 9,1  SAY 'APPEND ENTRIES                              A'
  13.    @ 10,1 SAY 'CREATE NEW LOGBOOK DATABASE                 N'
  14.    @ 11,1 SAY 'HUNT FOR PREFIX/CALL IN LOG                 H'
  15.    @ 12,1 SAY 'SUMMARISE LOG                               S'
  16.    @ 13,1 SAY 'UPDATE QSL STATUS                           Q'
  17.    @ 14,1 SAY 'DISPLAY ENTRIES FOR ONE DAY                 1'
  18.    @ 15,1 SAY 'DISPLAY LAST 20 ENTRIES IN THE LOG          E'
  19.    @ 16,1 SAY 'DISPLAY BLOCK OF 20 ENTRIES                 B'
  20.    @ 17,1 SAY 'DISPLAY FILES ON DISK DRIVE                 F'
  21.    @ 20,1 SAY 'QUIT THIS MENU                              *'
  22.    @ 22,1 SAY 'QRU'
  23.    @ 22,5 GET task
  24.    READ
  25.  
  26.    IF task = 'F'
  27.       ERASE
  28.       ACCEPT 'WHICH DRIVE ' TO diskdrive
  29.       STORE diskdrive + ':' TO diskdrive
  30.       DISPLAY FILES ON &diskdrive
  31.       RELEASE diskdrive
  32.       WAIT
  33.    ENDIF
  34.  
  35.    IF task = 'N'
  36.       STORE 'LOG' TO log
  37.       IF FILE (log+'.DBF')
  38.          @ 22,1 SAY 'What is the name of the new Log file '
  39.          @ 22,40 GET logbook
  40.          READ
  41.          IF FILE (logbook+'.DBF')
  42.             @ 22,1 SAY ' '
  43.             ? 'ERROR, ',logbook,' ALREADY EXISTS ON DRIVE'
  44.             WAIT
  45.          ELSE
  46.             @ 22,1 SAY '                                             '
  47.             USE log
  48.             COPY STRUCTURE TO &logbook
  49.             USE &logbook
  50.             SET TALK ON
  51.             INDEX ON call+band TO &logbook
  52.             SET TALK OFF
  53.          ENDIF
  54.       ELSE
  55.          @ 22,1 SAY ' '
  56.          ? 'ERROR, BLANK LOG FILE (log>dbf IS NOT PRESENT ON DRIVE'
  57.          WAIT
  58.       ENDIF
  59.       RELEASE log
  60.    ENDIF
  61.  
  62.    IF task = 'L'
  63.       @ 22,1 SAY 'Which Log file '
  64.       @ 22,15 GET logbook
  65.       READ
  66.       STORE logbook TO logndx
  67.       IF FILE (logbook+'.DBF')
  68.          @ 22,1 SAY '                          '
  69.       ELSE
  70.          @ 22,1 SAY ' '
  71.          ? 'ERROR, ',logbook, 'IS NOT PRESENT ON DRIVE'
  72.          WAIT
  73.       ENDIF
  74.    ENDIF
  75.  
  76.    IF FILE (logbook+'.DBF')
  77.       IF logbook = '      '
  78.          @ 23,1  SAY 'OPEN A LOGBOOK FIRST'
  79.          WAIT
  80.          STORE 'L' TO task
  81.       ELSE
  82.          DO CASE
  83.             CASE task = 'S'
  84.                DO LOGSTAT
  85.             CASE task = 'P'
  86.                DO LOGPRINT
  87.             CASE task = 'H'
  88.                DO LOGSRCH
  89.             CASE task = 'A'
  90.                DO LOGADD
  91.             CASE task = 'Q'
  92.                DO LOGQSL
  93.             CASE task = 'C'
  94.                DO LOGCALL
  95.             CASE task = '1'
  96.                DO LOGDATE
  97.             CASE task = 'E'
  98.                USE &logbook
  99.                GOTO BOTTOM
  100.                SKIP -20
  101.                ERASE
  102.                DO WHILE .NOT. EOF
  103.                   ? #,date,time,call,band,tx,rx,mode
  104.                   ?? power,qslsent,qslrx,comments
  105.                   SKIP
  106.                ENDDO
  107.                USE
  108.                WAIT
  109.  
  110.             CASE task = 'B'
  111.                USE &logbook
  112.                ACCEPT 'WHAT ENTRY NUMBER ? ' TO sdate
  113.                GOTO BOTTOM
  114.                STORE # TO lastone
  115.                IF &sdate >= lastone
  116.                   ?
  117.                   ? 'There are only ',lastone,' QSOs in the log'
  118.                   WAIT
  119.                ELSE
  120.                   GOTO &sdate
  121.                   STORE '+' TO stask
  122.                   DO WHILE stask <> '*'
  123.                   ERASE
  124.                   STORE 0  TO lcount
  125.                   ? '   #     DATE   TIME BD  CALL       RX  TX MODE POWER'
  126.                   ?? 'S R COMMENTS'
  127.                   ? '------------------------------------------------------'
  128.                   ?? '------------'
  129.                   DO WHILE lcount < 20 .AND. .NOT. EOF
  130.                      DISP
  131.                      STORE lcount + 1 TO lcount
  132.                      SKIP
  133.                   ENDDO
  134.                   @ 24,1 SAY 'QRU (+ - *)'
  135.                   @ 24,15 GET stask
  136.                   READ
  137.                   IF stask = '-'
  138.                      STORE # - 40 TO sdate
  139.                      IF sdate < 1
  140.                         STORE 1 TO sdate
  141.                      ENDIF
  142.                      GOTO sdate
  143.                   ENDIF
  144.                ENDDO
  145.            ENDIF
  146.            RELEASE lastone,stask,sdate,lcount
  147.            USE
  148.  
  149.          ENDCASE
  150.       ENDIF
  151.    ELSE
  152.       @ 22,1 SAY ' '
  153.       ? 'ERROR, ',logbook, 'IS NOT PRESENT ON DRIVE'
  154.       WAIT
  155.    ENDIF
  156. ENDDO
  157. USE
  158. STORE ' ' TO task
  159. RETURN
  160.